package com.buba.mapper;

import entity.ReleaseTopic;
import entity.ReleaseTopicEntity;
import entity.TopicEntiry;
import entity.TopicLabelEntiry;
import entity.VO.ReleaseTopicVO;
import entity.VO.TopicVO;
import entity.VO.UserVO;
import entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * LC: 2023-02-20 20:04
 */
@Mapper
public interface TopicMapper {
    /*
    * 根据话题id查询到发布者的信息
    * */
    UserVO getUserByTopicId(int id);
    /*
    * 根据用户id查询发布的话题
    * */
    List<ReleaseTopicVO> getTopicByUserId(int id);
    /**
     * 查询话题列表
     * @return
     */
    List<ReleaseTopicVO> getTopicLabel(String sort);

    /**
     * 查询id话题列表
     * @return
     */
    List<TopicLabelEntiry> getTopicLabelById(Integer id);

    /**
     * 根据id话题列表详情
     * @return
     */
    List<TopicEntiry> getTopicLabelByIdOne(Integer id);

    /**
     * 查询id话题列表总数
     * @return
     */
    Integer getTopicLabelByIdNum(Integer id);

    /**
     * 话题增加浏览数
     * @param id
     * @return
     */
    Integer updetTopicLabel(Integer id);

    /**
     * 搜索话题
     * @param title
     * @return
     */
    List<TopicEntiry> getTopicHistoryRecord(String title);

    /**
     * 新增历史记录
     * @return
     */
    Integer saveHistoryRecord(HistoryRecordEntiry historyRecordEntiry);

    /**
     * 查询历史是否重复
     * @param historyRecordName
     * @param historyUserId
     * @return
     */
    List<HistoryRecordEntiry> getHistoryRecord(@Param("historyRecordName") String historyRecordName, @Param("historyUserId") Integer historyUserId);

    /**
     * 查询历史记录
     * @return
     */
    List<HistoryRecordEntiry> getHistoryRecordList(Integer id);

    /**
     * 查询热门历史记录
     * @return
     */
    List<HistoryRecordEntiry> getHistoryRecordListNum();

    /**
     * 搜索话题
     * @param title
     * @return
     */
    List<TopicLabelEntiry> getHistoryRecordTopic(String title);

    /**
     * 搜索日记
     * @return
     */
    List<DiaryEntity> getHistoryRecordDiary(String title);

    /**
     * 搜索咨询
     * @return
     */
    List<InformationEntiry> getHistoryRecordInformation(String title);

    /**
     * 搜索用户
     * @return
     */
    List<User> getHistoryRecordUser(String title);

    String selectUrls(String s);
}
